package cn.itcast.customview.View;

import android.os.SystemClock;

public class MyScroller {

/*
* Y轴都起始坐标
*
* */
    private float startY;

    /*
     * X轴都起始坐标
     *
     * */
    private float startX;

    /*
    * 在X轴要移动的距离
    * */
    private int distanceX;

    /*Y
     * 在Y轴要移动的距离
     * */
    private int distanceY;
    //开始的时间--系统开机时间
    private long startTime;

    //总时间
    private long totalTime;

    //是否移动完成
    //false没有移动完成
    //true移动结束
    private boolean isFinish;

    private float currX;
    /*
    * 得到坐标
    * */

    public float getCurrX() {
        return currX;
    }

    public void startScroll(float startX, float startY, int diastanceX, int diastanceY) {

        this.startY=startY;
        this.startX=startX;
        this.distanceX=diastanceX;
        this.distanceY=diastanceY;
        this.startTime= SystemClock.uptimeMillis();//系统开机时间
        this.isFinish=false;
    }
    /*
    * 速度
    * 求移动一小段的距离
    * 求移动一小段对应的坐标
    * 求移动一小段对应的时间
    * true:正在移动
    * false:移动结束
    *
    * */
    public boolean computeScrollOffset(){
        if (isFinish){
            return false;
        }
        //这一小段的结束时间
        long endTime=SystemClock.uptimeMillis();
        //这一小段所花的时间
        long passTime=endTime-startTime;
        if (passTime<totalTime){
            //还没有移动结束
            //计算平均速度
            float voleCity=distanceX/totalTime;
            //移动这个一小段对应的距离
            float distanceSamllX=passTime*distanceX/totalTime;
            //移动这一小段后对应x轴的坐标
             currX=startX+distanceSamllX;

        }else {
            //移动结束
            isFinish=true;
            currX=startX+distanceX;

        }
        return true;
    }
}
